package models

import (
	"sync"
)

type E电信类型 int

const (
	E说话   = 0
	E呼喊   = 1
	E频道   = 2
	E耳语   = 3
	E系统消息 = 4
	E挂载频道 = 5
	E撤销频道 = 6
	E行会发言 = 7
	E组队发言 = 8
)

type 电信 struct {
	来源   *StructMap
	目标名字 string
	类型   E电信类型
	频道   string
	通讯内容 string
}

var m_缓存表 bool //一旦配置里决定缓存表或不缓存，这个在运行期间是不会变的，不有必要每次读取配置
var m_物品信息_外观2D map[string]*Struct物品信息
var m_技能信息 map[int32]*Struct技能信息 //只读
var m_新角色属性 map[string]*Struct新角色属性
var m_等级经验 map[uint16]int64
var m_附加属性信息 map[string]*Struct附加属性信息
var m_区域定义 []*Struct区域定义
var m_角色加点提成 map[string]*Struct角色加点提成 //string 为职业
var m_Npc列表 map[string]*SNpc列表
var m_物品信息 map[int32]*Struct物品信息
var m_任务简介 map[int32]map[int32]*Struct任务简介
var m_宝石属性 map[string]*Struct宝石属性
var m_怪物掉宝 map[string]*Struct怪物掉宝
var m_基础属性 map[string]uint16
var m_系统物品列表_中文2 map[string]*Struct物品列表
var m_系统物品列表2 map[int32]*Struct物品列表
var m_宠物列表 map[string]*S宠物列表
var m_怪物生成表 map[int32]*Struct怪物生成表

var m_怪物信息 map[string]*Struct怪物信息
var m_游戏时间 uint64
var m_正式物品ID int32
var m_物品信息最小ID int32
var m_物品列表最小ID int32
var m_历史长河 *S历史长河
var (
	m_临时物品ID  = int32(-10000)
	m_RunTime = new(sync.Map)
	m_频道列表    sync.Map              //不同的频道在线人员
	m_电信服务    = make(chan *电信, 100) //支持100个同时发送信息数据

	m_可视距离   = float32(50)
	m_物品最亮等级 = uint8(30)
)
